home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
IRIX Base Documentation 1998 November
/
IRIX 6.5.2 Base Documentation November 1998.img
/
usr
/
share
/
catman
/
p_man
/
cat3
/
ifl
/
iflConfig.z
/
iflConfig
Wrap
Text File
|
1998-10-20
|
10KB
|
265 lines
iiiiffffllllCCCCoooonnnnffffiiiigggg((((3333)))) IIIImmmmaaaaggggeeee FFFFoooorrrrmmmmaaaatttt LLLLiiiibbbbrrrraaaarrrryyyy CCCC++++++++ RRRReeeeffffeeeerrrreeeennnncccceeee MMMMaaaannnnuuuuaaaallll iiiiffffllllCCCCoooonnnnffffiiiigggg((((3333))))
NNNNAAAAMMMMEEEE
iiiiffffllllCCCCoooonnnnffffiiiigggg - class for pixel abstraction
IIIINNNNHHHHEEEERRRRIIIITTTTSSSS FFFFRRRROOOOMMMM
This is a base class and therefore has no inheritance.
HHHHEEEEAAAADDDDEEEERRRR FFFFIIIILLLLEEEE
#include <ifl/iflConfig.h>
CCCCLLLLAAAASSSSSSSS DDDDEEEESSSSCCCCRRRRIIIIPPPPTTTTIIIIOOOONNNN
The iflConfig class is used to describe the configuration of pixel data.
It is used in iflFile functions such as ggggeeeettttTTTTiiiilllleeee(((()))) and sssseeeettttTTTTiiiilllleeee(((()))) to
describe the configuration of data in the user's buffer.
An iflConfig contains six public member variables describing a collection
of pixels:
iiiiffffllllTTTTyyyyppppeeee _d_t_y_p_e Data type of the pixels
iiiiffffllllOOOOrrrrddddeeeerrrr _o_r_d_e_r Order of the pixels
iiiiffffllllOOOOrrrriiiieeeennnnttttaaaattttiiiioooonnnn _o_r_i_e_n_t_a_t_i_o_n Orientation of the pixels
iiiinnnntttt _n_c_h_a_n_s Number of data channels the pixels
contain
iiiinnnntttt _c_h_o_f_f Offset in the channel list for the
purpose of mapping from one collection
of channels to another.
iiiinnnntttt**** _c_h_a_n_n_e_l_s List that maps channels from one
collection to another. This array is
not maintained by this object, the data
pointed to must persist while the object
is in use.
PPPPaaaaggggeeee 1111
iiiiffffllllCCCCoooonnnnffffiiiigggg((((3333)))) IIIImmmmaaaaggggeeee FFFFoooorrrrmmmmaaaatttt LLLLiiiibbbbrrrraaaarrrryyyy CCCC++++++++ RRRReeeeffffeeeerrrreeeennnncccceeee MMMMaaaannnnuuuuaaaallll iiiiffffllllCCCCoooonnnnffffiiiigggg((((3333))))
UUUUssssiiiinnnngggg iiiiffffllllCCCCoooonnnnffffiiiigggg
The iflConfig object contains a list that maps channels from one
collection to another. In this code fragment,
unsigned char buffer[10*10*3];
static int list[] = { 2, 1, 0 };
iflConfig cfg(iflUChar, iflInterleaved, 3, list);
someFile.getTile(0, 0, 0, 10, 10, 1, buffer, &cfg);
_c_f_g is used to indicate that _b_u_f_f_e_r is going to receive a 10-by-10 array
of three-component pixels stored in interleaved order with an unsigned
char data type. This would override the actual configuration of the data
in _s_o_m_e_F_i_l_e.
The channel list provides the buffer's channel information. The first
channel of the buffer receives data from channel 2 of _s_o_m_e_F_i_l_e. The
second channel is from _s_o_m_e_F_i_l_e's channel 1. The third buffer channel
gets channel 0 of _s_o_m_e_F_i_l_e. In general, when an iflConfig is defaulted,
the operation being performed assumes that the source and destination
configurations match. If _s_o_m_e_F_i_l_e was actually a four-channel float
image stored in separate order, then
someFile.getTile(0, 0, 0, 10, 10, 1, buffer);
would require a buffer declared as
float buffer[10*10*4];
and would receive a verbatim copy of the requested section of _s_o_m_e_F_i_l_e.
CCCCLLLLAAAASSSSSSSS MMMMEEEEMMMMBBBBEEEERRRR FFFFUUUUNNNNCCCCTTTTIIIIOOOONNNN SSSSUUUUMMMMMMMMAAAARRRRYYYY
CCCCoooonnnnssssttttrrrruuuuccccttttoooorrrr
iflConfig()
iflConfig(iflDataType type, iflOrder ord=iflInterleaved,
int nchan=0, int* chanList=NULL, int chanOff=0,
iflOrientation ori=iflOrientation(0))
CCCChhhhaaaannnnnnnneeeellll lllliiiisssstttt mmmmaaaannnniiiippppuuuullllaaaattttiiiioooonnnnssss
void compose(int nc, int* in, int* out) const
int isInvertable() const
void invert(int nc, int* chanList) const
int mapChan(int idx) const
int operator[](int idx) const
PPPPaaaaggggeeee 2222
iiiiffffllllCCCCoooonnnnffffiiiigggg((((3333)))) IIIImmmmaaaaggggeeee FFFFoooorrrrmmmmaaaatttt LLLLiiiibbbbrrrraaaarrrryyyy CCCC++++++++ RRRReeeeffffeeeerrrreeeennnncccceeee MMMMaaaannnnuuuuaaaallll iiiiffffllllCCCCoooonnnnffffiiiigggg((((3333))))
FFFFUUUUNNNNCCCCTTTTIIIIOOOONNNN DDDDEEEESSSSCCCCRRRRIIIIPPPPTTTTIIIIOOOONNNNSSSS
iiiiffffllllCCCCoooonnnnffffiiiigggg(((())))
iflConfig()
iflConfig(iflDataType type, iflOrder order=iflInterleaved,
int nchan=0, int* chanList=NULL, int chanOff=0,
iflOrientation ori=iflOrientation(0))
The first constructor creates an uninitialized object (not
recommended). The second constructor creates an iflConfig with data
type, _t_y_p_e; data ordering, _o_r_d_e_r; and channel list defined by
_c_h_a_n_L_i_s_t of _n_c channels. If _c_h_a_n_L_i_s_t is omitted, all _n_c_h_a_n channels
are used in ascending order. Optionally, the orientation is set to
_o_r_i. If omitted, the orientation matches that of the image being
accessed.
ccccoooommmmppppoooosssseeee(((())))
void compose(int nc, int* in, int* out) const
This function composes the channel list in the iflConfig object with
the channel list of _n_c_h_a_n channels specified by _i_n. The composed
list is written to _o_u_t.
mmmmaaaappppCCCChhhhaaaannnn(((())))
void mapChan(int idx) const
This function returns the channel on the list in the iflConfig
object that maps to _i_d_x. It takes into account the offset specified
by _c_h_o_f_f, or just the offseted index, if the channel list is NULL.
If _i_d_x is more than _n_c_h_a_n_s or less than 0, it returns -1.
ooooppppeeeerrrraaaattttoooorrrr[[[[]]]](((())))
void operator[](int idx) const
This operator returns the channel on the list in the iflConfig
object that maps to _i_d_x. It takes into account the offset specified
by _c_h_o_f_f, or just the offseted index, if the channel list is NULL.
If _i_d_x is more than _n_c_h_a_n_s or less than 0, it returns -1.
iiiinnnnvvvveeeerrrrtttt(((())))
void invert(int nc, int* chanList) const
PPPPaaaaggggeeee 3333
iiiiffffllllCCCCoooonnnnffffiiiigggg((((3333)))) IIIImmmmaaaaggggeeee FFFFoooorrrrmmmmaaaatttt LLLLiiiibbbbrrrraaaarrrryyyy CCCC++++++++ RRRReeeeffffeeeerrrreeeennnncccceeee MMMMaaaannnnuuuuaaaallll iiiiffffllllCCCCoooonnnnffffiiiigggg((((3333))))
This function inverts the channel list in the iflConfig object to
perform the mapping in the opposite direction. The result is
written to _n_c entries of _c_h_a_n_l_i_s_t.
iiiissssIIIInnnnvvvveeeerrrrttttaaaabbbblllleeee(((())))
int isInvertable() const
This function returns whether the mapping described by the channel
list has an inverse.
SSSSEEEEEEEE AAAALLLLSSSSOOOO
iflFile
PPPPaaaaggggeeee 4444